package TarryDAOS;

import Herramientas.PasarelaDatos;
import Herramientas.ResultSets;
import TarryDTOS.CarteraVencidaDTO;
import TarryDTOS.RegistroEnvioDTO;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 *
 * @author SuperLap
 */
public class RegistroEnvioDAO {

    private PasarelaDatos db;
    private ResultSets res;

    public RegistroEnvioDAO() {

        db = new PasarelaDatos();
        res = new ResultSets();
    }

    /**
     * METODO PARA GENERAR UNA NUEVO REGISTRO
     *
     * @param reg
     */
    public void nuevoRegistroEnvio(RegistroEnvioDTO reg) {
        db.openDatabase();
        String sql = new String();
        sql += " INSERT INTO registro_envios SET";
        sql += " registro_envios.folio_fiscal = " + reg.getFolioFiscal();
        sql += " , registro_envios.id_pedido = " + reg.getIdPedido();
        sql += " , registro_envios.id_vehiculo = " + reg.getIdVehiculo();
        sql += " , registro_envios.id_conductor = " + reg.getIdConductor();
        sql += " , registro_envios.id_fletera = " + reg.getIdfletera();
        sql += " , registro_envios.numero_unidad =" + reg.getNumeroUnidad();
        sql += " , registro_envios.observaciones = ' " + reg.getObservaciones() + " ';";
        db.execute(sql);
        db.closeDatabase();
    }

    /**
     * ALAN GONZALEZ METODO QUE DEVUELVE UN REGISTRO ESTADO CREDITICIO DE UN
     * PEDIDO
     *
     * @param idPedido
     * @return
     */
    public RegistroEnvioDTO registroEnvioDTO(int idPedido) {
        RegistroEnvioDTO reg = new RegistroEnvioDTO();
        String sql = "SELECT * FROM registro_envios WHERE registro_envios.id_pedido =" + idPedido;
        db.openDatabase();
        ResultSet rst = db.executeQuery(sql);
        try {
            if (rst.next()) {
                reg = res.registroEnvioDTO(rst);
            } else {
                reg = null;
            }
        } catch (SQLException ex) {
            Logger.getLogger(RegistroEnvioDAO.class.getName()).log(Level.SEVERE, null, ex);
        }
        db.closeDatabase();
        return reg;
    }

    /**
     * ALAN GONZALEZ | REGRESA EL FOLIO
     * @param idPedido
     * @return 
     */
    public int folioFiscalPedido(int idPedido) {
        int folio = 0;
        String sql = "select registro_envios.folio_fiscal as folio from registro_envios WHERE registro_envios.id_pedido ="+idPedido;
        db.openDatabase();
        ResultSet rst = db.executeQuery(sql);
        try {
            if(rst.next()){
                folio = rst.getInt("folio");
            }else{
                folio =0;
            }
        } catch (SQLException ex) {
            Logger.getLogger(RegistroEnvioDAO.class.getName()).log(Level.SEVERE, null, ex);
        }
        db.closeDatabase();
        return folio;
    }
}
